/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Demo;
import java.io.*;
import java.util.Scanner;

/**
 *
 * @author Christian
 */
public class Principal {
    public static void Serializar(ObjectOutputStream o,Persona p){
        try{
            o.writeObject(p);
        }
        catch (FileNotFoundException e){e.printStackTrace();}
        catch (IOException e){e.printStackTrace();}

    }

    public static void Deserealizar(ObjectInputStream o){
        try{
            Persona aux = (Persona)o.readObject();

                    // Mientras haya objetos
                    while (aux!=null)
                    {
                        System.out.println(aux);  // Se escribe en pantalla el objeto
                        aux = (Persona)o.readObject();
                    }
        }
        catch(FileNotFoundException e){e.printStackTrace();}
        catch(IOException e){e.printStackTrace();}
        catch(ClassNotFoundException e){e.printStackTrace();}
        
    }
    public static void main(String[] args) throws Exception{
        
        //crear el archivo
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("reg"));
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("reg"));

        Scanner lector = new Scanner(System.in);
        int opcion=0;
        while (opcion!=3){
            System.out.println("");
            System.out.println("====================");
            System.out.println("      MENU          ");
            System.out.println("====================");
            System.out.println("1. Registrar persona");
            System.out.println("2. Listar registro");
            System.out.println("3. Salir");
            System.out.println("Ingrese una opcion: ");

            opcion = lector.nextInt();
            switch(opcion){
                case 1: {
                    System.out.print("Ingrese nombre: ");
                    String nombre = lector.next();
                     System.out.print("Ingrese Apellido Paterno: ");
                    String AP = lector.next();
                     System.out.print("Ingrese Apellido Materno: ");
                    String AM = lector.next();
                     System.out.print("Ingrese Ciudad: ");
                    String ciudad = lector.next();
                     System.out.print("Ingrese Distrito: ");
                    String dis = lector.next();
                     System.out.print("Ingrese Urbanizacion: ");
                    String urb = lector.next();
                     System.out.print("Ingrese Jiron: ");
                    String jr = lector.next();
                    System.out.print("Ingrese numero: ");
                    String num = lector.next();
                    //Creamos la variable nombre
                    Nombre name = new Nombre(nombre,AP,AM);
                    //creamos la variable direccion
                    Direccion dir = new Direccion(ciudad, dis, urb, jr, num);
                    //creamos la variable persona
                    Persona per = new Persona(name,dir);

                    Serializar(oos, per);
                    break;}
                case 2: {
                    oos.close();
                    System.out.println("==========================================");
                    System.out.println("Nombre                           Direccion");
                    Deserealizar(ois);
                    ois.close();
                    break;}
                default:oos.close(); break;
            }
        }
    }
}
